"""日志配置相关代码"""

import os
import logging.handlers
from config import BASE_DIR
# 获取项目目录为“根”目录, 在项目中,建议从 config 中导入
# BASE_DIR = os.path.dirname(__file__)


# 定义 初始化日志代码 相关函数

def init_log_config():
    # 创建日志器对象
    logger = logging.getLogger()

    # 设置日志级别 -- 大于info级别，都写入 日志文件
    logger.setLevel(logging.INFO)

    # 创建日志处理器对象（控制台）
    console_handler = logging.StreamHandler()

    # 创建日志处理器对象（日志文件）
    file_path = BASE_DIR + '/log/ihrm.log'
    file_handler = logging.handlers.TimedRotatingFileHandler(file_path, when='midnight', interval=1,
                                                             backupCount=15, encoding='UTF-8')

    # 创建格式化器 - () 里面的 关键字 千万别写错！
    fmt_str = '%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'
    fmt = logging.Formatter(fmt_str)

    # 设置使用格式化器
    console_handler.setFormatter(fmt)
    file_handler.setFormatter(fmt)

    # 添加到日志中
    logger.addHandler(console_handler)   # 输出日志到 控制台,不想要注释即可
    logger.addHandler(file_handler)      # 输出日志到 文件


if __name__ == '__main__':
    init_log_config()
    logging.info('普通信息')
    logging.error('错误信息')